People have been accessing content and otherwise filling their information needs on the Internet using browser applications for more than two decades. Users of such applications have become accustomed to a seamless browsing experience in which transitioning from one web page in the hierarchy of a web site to another web page in the hierarchy of another web site is a trivial and nearly instantaneous operation initiated by selection of a hyperlink. This seamless user experience is enabled by the fact that content publishers and other information providers employ a standard set of protocols and a single interface application, i.e., the browser. More recently, users have migrated to the use of mobile applications (i.e., mobile apps) on mobile devices (e.g., smart phones and tablets) to fill their information needs. However, because of the great diversity of mobile app providers, the relatively narrow content focus of mobile apps, and the lack of uniformity with which mobile apps are controlled and operate, the mobile user experience in filling information needs is anything but seamless.
For example, because mobile apps tend to have a narrow content focus, it is often necessary or desirable to switch from one mobile app to another to meet different information needs. This typically requires the user to close or exit the current mobile app, navigate to an interface to access a different mobile app, launch the new mobile app, and then provide input to the new mobile app to meet the information need. For example, a user might use a maps app to identify nearby restaurants. If she then wants to make a reservation at one of the restaurants shown in the map interface using a restaurant reservation app, she needs to exit the maps app, launch the reservation app, and then navigate to a reservation page for the desired restaurant by entering the name of the restaurant in the app home page; this even though the restaurant was already clearly identified in the interface of the maps app.
There are some mobile apps that allow users to launch and/or link to specific pages or interfaces in other mobile apps. For example, an email app might recognize a date in the body of an email and present that text as a link that can launch a calendar app directly to an interface in which an appointment for that date may be entered. However, the way in which such mobile apps are currently configured to accomplish this is a manual process in which human programmers of the first mobile app obtain information about the target mobile app (e.g., by reverse engineering or by partnering with the provider of the target mobile app) and code the functionality into their mobile app. As will be appreciated by those of skill in the art, such an approach is simply not scalable to the millions of mobile apps that are currently available and coming online every day. An additional challenge is represented by the frequency with which the code of mobiles apps is updated. That is, any mobile app that targets another mobile app in its code will typically require corresponding updates to ensure continued operability with the updated target app.